﻿
using System;
namespace Levfier.Proccessors.Chains
{
    /// <summary>
    /// プロセッサ間を接続するストリーム
    /// </summary>
    [Serializable]
    public class BufferChain : Chain
    {
        /// <summary>
        /// コンストラクタ
        /// </summary>
        /// <param name="sampleCount">バッファのサンプル数</param>
        public BufferChain(int sampleCount) 
            : base()
        {
            base.buffer = new double[sampleCount];
            VSTParameterManager.GetInstance().SampleCountChanged += this.ChangeSampleCount;
        }

        /// <summary>
        /// 渡されたサンプルレートで新しくバッファを生成する
        /// </summary>
        /// <param name="value">サンプル数</param>
        public void ChangeSampleCount(double value)
        {
            base.buffer = new double[(int)value];
        }
    }
}
